/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package easy.core.bean;

import easy.entities.Segmentacao;
import easy.entities.Tag;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Julio
 */
public class SegmentacaoManagedBean extends BaseBean{
    private static final long serialVersionUID = -9215141518156263359L;

            private Segmentacao segmentacao;
            private List<Segmentacao> listaSegmentacao = new ArrayList<Segmentacao>();
            private List<Tag> listaTag = new ArrayList<Tag>();
            private Tag tagInformada = new Tag();

            //controle renderizações
            private boolean renderedListaSegmentacao;
            private boolean controleEditar;
            private boolean renderedBotaoAdicionar;
            private boolean renderedBotaoAdicionarTag;
            private boolean renderedBotaoSalvar;
            private boolean renderedBotaoSalvarTag;
            private boolean renderedBotaoDesfazer;
            private boolean renderedOutputTextTag;
            private boolean renderedInputTextTag;

            private boolean renderedListaTag;
            private boolean renderedToggleTag;


            public SegmentacaoManagedBean(){
                renderedBotaoAdicionarTag=true;
                segmentacao = new Segmentacao();
                renderedBotaoAdicionar=true;
                renderedListaTag=false;
                controleEditar=false;
                renderedInputTextTag = true;

            }

    public void adicionarSegmentacao(){

        if (listaSegmentacao!=null){
            setRenderedListaSegmentacao(true);
        } else setRenderedListaSegmentacao(false);

        if(isControleEditar()==false){
           getListaSegmentacao().add(getSegmentacao());
        }
        setSegmentacao(new Segmentacao());
        setControleEditar(false);
        setRenderedBotaoAdicionar(true);
        setRenderedBotaoSalvar(false);
    }
    public void editarSegmentacao(){
        setControleEditar(true);
        setRenderedBotaoAdicionar(false);
        setRenderedBotaoSalvar(true);
    }

    public void excluirSegmentacao(){
    System.out.println("Entrou em excluir");

       listaSegmentacao.remove(getSegmentacao());
        setSegmentacao(new Segmentacao());

        if (listaSegmentacao.isEmpty()){
            setRenderedListaSegmentacao(false);
        }

    }

    public void salvarSegmentacao(){
        renderedBotaoAdicionar=true;
        renderedBotaoSalvar=false;
        renderedInputTextTag=true;
        renderedOutputTextTag=false;
        renderedInputTextTag=true;
        renderedOutputTextTag=false;
        renderedBotaoDesfazer=false;
        segmentacao.setListaTag(listaTag);
        segmentacao = new Segmentacao();
        renderedToggleTag=false;
        renderedListaSegmentacao=true;
    }

    public void visualizar(){
        if(getListaTag().isEmpty()){
            renderedListaTag=false;
        }else   renderedListaTag=true;
        renderedToggleTag=true;
        renderedBotaoSalvarTag = false;
        renderedBotaoDesfazer = true;
        renderedBotaoSalvar =true;
        renderedBotaoAdicionar = false;
        renderedOutputTextTag = true;
        renderedInputTextTag = false;
        renderedListaSegmentacao = false;
       
    }

    public void adicionarTag(){
        renderedListaTag=true;

        if(!controleEditar){
           getListaTag().add(getTagInformada());
        }
        setTagInformada(new Tag());
        controleEditar=false;
        renderedBotaoAdicionarTag=true;
      
    }
    public void excluirTag(){
         listaTag.remove(tagInformada);
        if(getListaTag().isEmpty()){
            renderedListaTag=false;
        }else   renderedListaTag=true;
       tagInformada = new Tag();
    }

    public void editarTag(){
         controleEditar=true;
         renderedBotaoAdicionarTag=false;
         renderedBotaoSalvarTag=true;
    }

    public void salvarTag(){
        renderedBotaoSalvarTag = false;
       
        renderedBotaoAdicionarTag = true;
        
        tagInformada = new Tag();
    }

    public void desfazer(){
        renderedOutputTextTag = false;
        renderedInputTextTag = true;
        renderedBotaoSalvarTag = false;
        renderedBotaoDesfazer = false;
        renderedBotaoSalvar =false;
        renderedBotaoAdicionar = true;
        renderedListaSegmentacao = true;
        renderedToggleTag=false;
        segmentacao = new Segmentacao();
    }

    /**
     * @return the listaSegmentacao
     */
    public List<Segmentacao> getListaSegmentacao() {
        return listaSegmentacao;
    }

    /**
     * @param listaSegmentacao the listaSegmentacao to set
     */
    public void setListaSegmentacao(List<Segmentacao> listaSegmentacao) {
        this.listaSegmentacao = listaSegmentacao;
    }

    /**
     * @return the renderedListaSegmentacao
     */
    public boolean isRenderedListaSegmentacao() {
        return renderedListaSegmentacao;
    }

    /**
     * @param renderedListaSegmentacao the renderedListaSegmentacao to set
     */
    public void setRenderedListaSegmentacao(boolean renderedListaSegmentacao) {
        this.renderedListaSegmentacao = renderedListaSegmentacao;
    }

    /**
     * @return the controleEditar
     */
    public boolean isControleEditar() {
        return controleEditar;
    }

    /**
     * @param controleEditar the controleEditar to set
     */
    public void setControleEditar(boolean controleEditar) {
        this.controleEditar = controleEditar;
    }

    /**
     * @return the renderedBotaoAdicionar
     */
    public boolean isRenderedBotaoAdicionar() {
        return renderedBotaoAdicionar;
    }

    /**
     * @param renderedBotaoAdicionar the renderedBotaoAdicionar to set
     */
    public void setRenderedBotaoAdicionar(boolean renderedBotaoAdicionar) {
        this.renderedBotaoAdicionar = renderedBotaoAdicionar;
    }

    /**
     * @return the renderedBotaoSalvar
     */
    public boolean isRenderedBotaoSalvar() {
        return renderedBotaoSalvar;
    }

    /**
     * @param renderedBotaoSalvar the renderedBotaoSalvar to set
     */
    public void setRenderedBotaoSalvar(boolean renderedBotaoSalvar) {
        this.renderedBotaoSalvar = renderedBotaoSalvar;
    }

    /**
     * @return the segmentacao
     */
    public Segmentacao getSegmentacao() {
        return segmentacao;
    }

    /**
     * @param segmentacao the segmentacao to set
     */
    public void setSegmentacao(Segmentacao segmentacao) {
        this.segmentacao = segmentacao;
    }

    /**
     * @return the renderedListaTag
     */
    public boolean isRenderedListaTag() {
        return renderedListaTag;
    }

    /**
     * @param renderedListaTag the renderedListaTag to set
     */
    public void setRenderedListaTag(boolean renderedListaTag) {
        this.renderedListaTag = renderedListaTag;
    }

    /**
     * @return the renderedBotaoSalvarTag
     */
    public boolean isRenderedBotaoSalvarTag() {
        return renderedBotaoSalvarTag;
    }

    /**
     * @param renderedBotaoSalvarTag the renderedBotaoSalvarTag to set
     */
    public void setRenderedBotaoSalvarTag(boolean renderedBotaoSalvarTag) {
        this.renderedBotaoSalvarTag = renderedBotaoSalvarTag;
    }

    /**
     * @return the renderedBotaoDesfazer
     */
    public boolean isRenderedBotaoDesfazer() {
        return renderedBotaoDesfazer;
    }

    /**
     * @param renderedBotaoDesfazer the renderedBotaoDesfazer to set
     */
    public void setRenderedBotaoDesfazer(boolean renderedBotaoDesfazer) {
        this.renderedBotaoDesfazer = renderedBotaoDesfazer;
    }

    /**
     * @return the renderedOuputTextTag
     */
    public boolean isRenderedOutputTextTag() {
        return renderedOutputTextTag;
    }

    /**
     * @param renderedOuputTextTag the renderedOuputTextTag to set
     */
    public void setRenderedOutputTextTag(boolean renderedOutputTextTag) {
        this.renderedOutputTextTag = renderedOutputTextTag;
    }

    /**
     * @return the renderedInputTextTag
     */
    public boolean isRenderedInputTextTag() {
        return renderedInputTextTag;
    }

    /**
     * @param renderedInputTextTag the renderedInputTextTag to set
     */
    public void setRenderedInputTextTag(boolean renderedInputTextTag) {
        this.renderedInputTextTag = renderedInputTextTag;
    }

    /**
     * @return the listaTag
     */
    public List<Tag> getListaTag() {
        return listaTag;
    }

    /**
     * @param listaTag the listaTag to set
     */
    public void setListaTag(List<Tag> listaTag) {
        this.listaTag = listaTag;
    }

    /**
     * @return the tagInformada
     */
    public Tag getTagInformada() {
        return tagInformada;
    }

    /**
     * @param tagInformada the tagInformada to set
     */
    public void setTagInformada(Tag tagInformada) {
        this.tagInformada = tagInformada;
    }

    /**
     * @return the renderedBotaoAdicionarTag
     */
    public boolean isRenderedBotaoAdicionarTag() {
        return renderedBotaoAdicionarTag;
    }

    /**
     * @param renderedBotaoAdicionarTag the renderedBotaoAdicionarTag to set
     */
    public void setRenderedBotaoAdicionarTag(boolean renderedBotaoAdicionarTag) {
        this.renderedBotaoAdicionarTag = renderedBotaoAdicionarTag;
    }

    /**
     * @return the renderedToggleTag
     */
    public boolean isRenderedToggleTag() {
        return renderedToggleTag;
    }

    /**
     * @param renderedToggleTag the renderedToggleTag to set
     */
    public void setRenderedToggleTag(boolean renderedToggleTag) {
        this.renderedToggleTag = renderedToggleTag;
    }



}
